/* 
 * @company: BlueInsight
 * @author: lxs
 * @date: 2018年10月4日
 */
package com.cedar.model.strategy;

/**
 * @FileName: 策略模式
 * @author: lxs
 * @date: 2018年10月4日
 * @Description: 
 * 策略模式定义了一系列算法，并将每个算法封装起来，使他们可以相互替换，且算法的变化不会影响到使用算法的客户。
 * 需要设计一个接口，为一系列实现类提供统一的方法，多个实现类实现该接口，设计一个抽象类（可有可无，属于辅助类），提供辅助函数
 */
public class ClientTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        //选择并创建需要使用的策略对象
        MemberStrategy strategy = new AdvancedMemberStrategy();
        //创建环境
        Price price = new Price(strategy);
        //计算价格
        double quote = price.quote(300);
        System.out.println("优惠后价格："+quote);
    }

}
